API (Application Programming Interface) ডেভেলপমেন্টে JSON (JavaScript Object Notation) একটি জনপ্রিয় ডাটা ফরম্যাট হিসেবে ব্যবহৃত হয়। JSON হল একটি হালকা ওয়েট ডাটা ফরম্যাট যা সহজে পাঠযোগ্য এবং প্রক্রিয়া করা যায়, এবং এটি ওয়েব অ্যাপ্লিকেশন, মোবাইল অ্যাপ্লিকেশন এবং অন্যান্য সিস্টেমের মধ্যে ডাটা আদান-প্রদান করতে ব্যবহৃত হয়। ASP.Net Core তে API কন্ট্রোলার তৈরি করা এবং JSON রেসপন্স তৈরি করার প্রক্রিয়া খুবই সোজা এবং সুবিধাজনক।
ASP.Net Core তে API কন্ট্রোলার হলো এমন একটি কন্ট্রোলার ক্লাস যা HTTP রিকোয়েস্টগুলো প্রসেস করে এবং সেগুলোর জন্য HTTP রেসপন্স প্রদান করে। API কন্ট্রোলার সাধারণত Web API এপ্লিকেশন তৈরি করতে ব্যবহৃত হয় এবং এটি JSON বা XML ফরম্যাটে ডাটা রিটার্ন করে।
ASP.Net Core তে API কন্ট্রোলার তৈরি করার জন্য ControllerBase
ক্লাসটি ইনহেরিট করা হয়, যা কন্ট্রোলার এর ফাংশনালিটি সহজভাবে পরিচালনা করতে সহায়তা করে।
ASP.Net Core তে একটি API কন্ট্রোলার তৈরির জন্য নিম্নলিখিত ধাপগুলো অনুসরণ করা হয়:
কন্ট্রোলার ক্লাস তৈরি
কন্ট্রোলার ক্লাস তৈরি করার জন্য ControllerBase
ক্লাস ইনহেরিট করা হয়, এবং [Route]
অ্যাট্রিবিউট দিয়ে রাউটিং কনফিগার করা হয়।
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
// GET: api/products
[HttpGet]
public IActionResult GetProducts()
{
var products = new List<string> { "Product1", "Product2", "Product3" };
return Ok(products); // JSON রেসপন্স
}
}
Route
অ্যাট্রিবিউট ব্যবহার করে URL পাথ নির্ধারণ করা হয়। উদাহরণস্বরূপ, api/products
রাউটের জন্য কন্ট্রোলার তৈরি করা হয়েছে।ASP.Net Core তে API কন্ট্রোলার দ্বারা JSON রেসপন্স রিটার্ন করা খুবই সহজ। রিটার্ন টাইপ হিসেবে IActionResult
বা ActionResult<T>
ব্যবহার করা হয় এবং এর মধ্যে Ok()
মেথড ব্যবহার করে JSON রেসপন্স পাঠানো হয়।
JSON রেসপন্স প্রদান করার উদাহরণ:
[HttpGet]
public IActionResult GetProduct(int id)
{
var product = new { Id = id, Name = "Product1", Price = 100 };
return Ok(product); // এটি JSON রেসপন্স হিসেবে রিটার্ন হবে
}
উপরের উদাহরণে, Ok()
মেথড JSON ডাটা রিটার্ন করবে, যা ক্লায়েন্ট সাইডে JSON ফরম্যাটে প্রদর্শিত হবে। এই JSON ডাটা কিছু এরকম হবে:
{
"Id": 1,
"Name": "Product1",
"Price": 100
}
JSON রেসপন্সের অন্যান্য ভ্যালিড রিটার্ন টাইপস:
BadRequest: যদি রিকোয়েস্টে কোন ভুল থাকে বা ইনপুট ভ্যালিড না হয়, তাহলে BadRequest()
ব্যবহার করা হয়।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
if (product == null)
{
return BadRequest("Product data is required.");
}
return Ok(product);
}
NotFound: যদি কোনো ডাটা না পাওয়া যায়, তাহলে NotFound()
রিটার্ন করা হয়।
[HttpGet("{id}")]
public IActionResult GetProductById(int id)
{
var product = _context.Products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
Created: নতুন রিসোর্স তৈরি করা হলে, Created()
মেথড ব্যবহার করে সফল রেসপন্স পাঠানো হয়।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
_context.Products.Add(product);
_context.SaveChanges();
return CreatedAtAction(nameof(GetProductById), new { id = product.Id }, product);
}
ASP.Net Core API কন্ট্রোলারে একাধিক Action
মেথড থাকতে পারে, এবং প্রতিটি মেথড বিভিন্ন HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) এর জন্য নির্দিষ্ট কাজ করে। প্রতিটি একশন মেথড IActionResult
বা ActionResult<T>
রিটার্ন করে এবং সেই অনুযায়ী JSON রেসপন্স প্রদান করে।
GET Request: সাধারণত ডাটা প্রাপ্তির জন্য ব্যবহৃত হয়।
[HttpGet]
public IActionResult GetAllProducts()
{
var products = _context.Products.ToList();
return Ok(products);
}
POST Request: নতুন ডাটা পাঠানোর জন্য ব্যবহৃত হয়।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
_context.Products.Add(product);
_context.SaveChanges();
return CreatedAtAction(nameof(GetProductById), new { id = product.Id }, product);
}
PUT Request: বিদ্যমান ডাটা আপডেট করার জন্য ব্যবহৃত হয়।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, Product product)
{
if (id != product.Id)
{
return BadRequest();
}
_context.Entry(product).State = EntityState.Modified;
_context.SaveChanges();
return NoContent(); // No Content response
}
DELETE Request: ডাটা মুছে ফেলার জন্য ব্যবহৃত হয়।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
var product = _context.Products.Find(id);
if (product == null)
{
return NotFound();
}
_context.Products.Remove(product);
_context.SaveChanges();
return NoContent();
}
ASP.Net Core API কন্ট্রোলার তৈরি করা এবং JSON রেসপন্স প্রদান করা অত্যন্ত সহজ এবং নমনীয়। ডেভেলপাররা সহজেই বিভিন্ন HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ডাটা প্রক্রিয়া করতে এবং JSON ফরম্যাটে ক্লায়েন্টকে রেসপন্স পাঠাতে পারেন। এই রেসপন্স ডাটা আধুনিক ওয়েব অ্যাপ্লিকেশন ও মোবাইল অ্যাপ্লিকেশনগুলোর জন্য অত্যন্ত উপযোগী এবং ফাস্ট ডাটা ট্রান্সফার নিশ্চিত করে।
common.read_more